Intake profile for optimized utilization of motor characteristics

ABSTRACT

Systems and methods for operating a stepper motor of a pump at a desired low velocity include memory for storing information corresponding to an intake velocity profile. The intake velocity profile represents an optimized acceleration curve for operating the stepper motor over a range of motor velocities during an intake cycle. A processor of a system controller dynamically accesses the memory during the intake cycle to acquire the information representing the intake velocity profile and issues a series of pulses to the stepper motor based on this information. In response to the pulses, the stepper motor accelerates in accordance with the optimized acceleration curve represented by the intake velocity profile. The optimized acceleration curve is based on the available torque of the stepper motor across a range of motor velocities and enables the motor to operate with greater torque utilization and less margin than traditional linear acceleration profiles.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation patent application of U.S. patentapplication Ser. No. 13/063,291 filed Mar. 10, 2011, which is thenational stage of International Application No. PCT/US2009/056438, filedSep. 10, 2009 and designating the United States, which claims priorityto and the benefit of the filing date of U.S. Provisional PatentApplication No. 61/096,455, filed on Sep. 12, 2008. The contents ofthese applications are expressly incorporated herein by reference intheir entireties.

FIELD OF THE INVENTION

The invention relates generally to fluid delivery systems such as liquidchromatography systems. More specifically, the invention relates tosystems and methods for optimizing utilization of a pump motor'sacceleration capabilities during fluid intake cycles.

BACKGROUND

The mixing of liquids in controlled proportions is the keystone of manyapplications, a primary example of which is liquid chromatography. In aliquid chromatography application, a pump module intakes and delivers amixture of liquid solvents and an injected sample to a point of use,such as a column of particulate matter. By passing the mixture throughthe column, the various components in the sample separate from eachother at different rates and thus elute from the column at differenttimes. A detector receives the elution from the column and produces anoutput from which the identity and quantity of the analytes may bedetermined. In an isocratic chromatography application, the compositionof the liquid solvents remains unchanged, whereas in a gradientchromatography application, the solvent composition varies over time.

The reliability of the results produced by a chromatography applicationdepends heavily on run-to-run reproducibility. In particular, theidentification of sample analytes depend on the retention times of thedetected elution peaks. Some pumping systems exhibit non-ideal pumpcharacteristics, such as fluctuations in solvent composition andfluctuations in flow rate. These non-ideal pump characteristics can leadto undesirable separation performance and unreliable run-to-runreproducibility. In general, the greater the intake velocity of a pumpmodule, the lower is the accuracy of solvent composition because of pumperrors, such as bubble formation (outgassing) and timing errors relatedto valve switching. Accordingly, the benefits of a low intake velocityare a reduction in time-based errors and in pressure drop, thus in theout-gassing and cavitation of the intake fluidics.

SUMMARY

In one aspect, the invention features a method for operating a steppermotor of a pump during a fluid intake cycle. Available torque of thestepper motor is measured across a range of motor velocities withinwhich the stepper motor will operate during the intake cycle. A maximumacceleration rate is calculated for each of a plurality of motorvelocities in the range of motor velocities based on the availabletorque of the stepper motor measured at that motor velocity. An intakevelocity profile is generated based on the maximum acceleration ratescalculated for the plurality of motor velocities. The stepper motor isaccelerated during the intake cycle in accordance with the generatedintake velocity profile.

In another aspect, the invention features a method for operating a pumpin a pumping system. The pump has a stepper motor coupled to areciprocating plunger mechanism. The stepper motor moves the plungermechanism within a chamber into which fluid is drawn during a drawstroke of the plunger mechanism. The method includes storinginformation, in memory, corresponding to an intake velocity profile thatrepresents an optimized acceleration curve based on available torque foroperating the stepper motor over a range of motor velocities at whichthe stepper motor will operate during an intake cycle. The memory isdynamically accessed during the intake cycle to acquire the informationrepresenting the intake velocity profile. A series of pulses is issuedto the pump based on the information accessed in the memory. The steppermotor is accelerated, in response to the series of pulses, such that thestepper motor accelerates during the intake cycle in accordance with theoptimized acceleration curve represented by the intake velocity profile.

In still another aspect, the invention features a pumping systemcomprising a pump having a stepper motor coupled to a reciprocatingplunger mechanism. The stepper motor moves the plunger mechanism withina chamber into which fluid is drawn during a draw stroke of the plungermechanism. Memory stores information corresponding to an intake velocityprofile. The intake velocity profile represents an optimizedacceleration curve based on available torque for operating the steppermotor over a range of motor velocities at which the stepper motor willoperate during an intake cycle. A system controller has a processor thatis in communication with the stepper motor to issue pulses thereto andwith the memory to access dynamically during the intake cycle theinformation representing the intake velocity profile. The systemcontroller determines from the accessed information when to issue pulsesto the pump. The issued pulses cause the stepper motor to accelerate inaccordance with the optimized acceleration curve represented by theintake velocity profile.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and further advantages of this invention may be betterunderstood by referring to the following description in conjunction withthe accompanying drawings, in which like numerals indicate likestructural elements and features in various figures. The drawings arenot necessarily to scale, emphasis instead being placed uponillustrating the principles of the invention.

FIG. 1 is a block diagram of an embodiment of a system for meteringliquids in controlled proportions, the system including a pump and asystem controller for controlling the operation of the pump.

FIG. 2 is a diagram of an embodiment of a representative pump head inthe pump of FIG. 1, the pump head including a stepper motor coupled to aplunger mechanism for reciprocal movement within a chamber that receivesand delivers fluid.

FIG. 3 is a block diagram of an embodiment of the system controller ofFIG. 1.

FIG. 4 is a graph of a torque-versus-speed curve for the stepper motorof FIG. 2.

FIG. 5 is a chart that plots optimized velocity over time for differenttorque margins based on the torque-versus-speed curve of FIG. 3.

FIG. 6 is a chart that plots optimized acceleration over time fordifferent torque margins based on the torque-versus-speed curve of FIG.3.

FIG. 7 is a chart that plots optimized acceleration versus velocitycurves for different torque margins.

FIG. 8A, FIG. 8B, and FIG. 8C are a set of charts comparing an optimizedintake velocity profile with a trapezoidal intake velocity profile withrespect to acceleration, velocity, and stepper motor position.

FIG. 9 is a flow chart of an embodiment of a process for operating astepper motor in accordance with the invention.

DETAILED DESCRIPTION

Piston pumps operating in accordance with an intake velocity profile ofthe present invention optimize use of their stepper motors' accelerationcapabilities during fluid intake cycles. Although described hereinprimarily with reference to low-pressure gradient pumps, the principlesof the invention can be used for any piston pump intake velocityprofile. For low-pressure gradient systems generally, flow andcomposition errors scale proportionately to the maximum velocity reachedby the stepper motor during a fluid intake cycle. To reduce such error,a low-pressure gradient system can use a reduced maximum velocity.However, to operate at a reduced velocity and still achieve a desiredflow rate (or other flow objective) during a given intake time requiresan increase in acceleration. That is, if constrained to a given intaketime, increasing acceleration serves to decrease the maximum velocityneeded to accomplish a complete motor move (i.e., a full draw stroke ofthe motor's piston). The torque available at a given motor velocity,though, limits the extent to which the acceleration rate can increase.Generally, more torque is available at the low end of the range of motorvelocities than at the high end of the range.

In accordance with the present invention, an intake velocity profile isdeveloped to make optimal use of the motor's available torque over therange of motor velocities (i.e., zero to the desired terminal velocity).This optimized intake velocity profile represents the optimizedacceleration curve along which the motor can operate in this range ofmotor velocities. A system controller uses the optimized intake velocityprofile to determine when to issue pulses that tell the stepper motorwhen to step and at what rate to step. In general, the optimized intakevelocity profile produces a higher acceleration (compared to constantacceleration intake velocity profiles) for most of the velocity range(particularly at the low end in the range of the velocities). As thevelocity increases, the acceleration decreases, approximately followingthe optimized acceleration curve, which corresponds to the availablemotor torque along the range of velocities.

To minimize adjustments necessary to incorporate an optimized intakevelocity profile in a system currently using a constant accelerationprofile, the pump can use the constant acceleration intake profile forruns in which the desired terminal velocity is less than a definedthreshold velocity. If the desired terminal velocity exceeds thisthreshold velocity, the system controller can then switch to theoptimized intake velocity profile.

FIG. 1 shows an embodiment of a system 10 for metering liquids incontrolled proportions and for delivering a resultant mixture to a pointof use. The system 10 includes a low-pressure gradient pump 12 connectedto a plurality of reservoirs 14-A, 14-B, 14-B, 14-D (generally, 14),each holding a fluid (typically a liquid solvent, or a gas). The pump 12includes a gradient proportioning valve (GPV) 16, a mixer 18, and a pairof substantially identical pump heads 20 a, 20 b (generally, 20). In oneembodiment, the pump is implemented using the 2545 Quaternary GradientModule, manufactured by Waters Corp. of Milford, Mass. The pump 12 hasan intake side 22 and a delivery side 24. On the intake side, each pumphead 20 a, 20 bb is connected to the GPV 16 through an inlet manifoldvalve 26 and a first check valve 28 a, 28 b, respectively, and, on thedelivery side 24, to the mixer 18 through a second check valve 30 a, 30b, respectively.

In addition, the system 10 has a system controller 34 that is incommunication with the GPV 16 through a valve driver 38 and with thepump heads 20 through a motor driver 36. A host computing system 40 isin communication with the system controller 34 by which a user candownload parameters to memory (FIG. 3) of the system controller 34,including the intake velocity profiles described herein.

The motor driver 36 is in communication with each pump head 20 tocontrol a microstep-motor-driven piston or plunger (FIG. 2). Under thecontrol of the system controller 34, the motor driver 36 sends pulses tothe pump heads 20 that control stepwise behavior of the stepper motor inaccordance with an intake velocity profile (e.g., an optimized intakevelocity profile). In one embodiment, a pulse moves the motor 1microstep ( 1/10th of a full step). The micro-stepping rate can bechanged through firmware.

The GPV 16 accommodates the intake of fluid from the reservoirs 14 formixing in desired proportions to form a liquid composition. The GPV 16includes an inlet for each reservoir 14, an inlet valve (not shown) forcontrolling each flow of fluid being drawn into one of the inlets, and acommon outlet through which fluid flows from the GPV 16 to the inletvalve manifold 26. At the inlet valve manifold, the sample is injectedinto the fluid composition provided by the GPV 16. A conduit fortransporting fluid, for example, a tube, extends from each reservoir 14to one of the inlets of the GPV 16 and from the outlet of the GPV 16 tothe intake side of the inlet valve manifold 26. Conduits connect theinlet valve manifold 26 to the first check valves 28 a, 28 b. Under thecontrol of the system controller 34, the valve driver 38 sends pulses tothe GPV 16 to actuate the individual valves sequentially at theappropriate times (in synchronization with certain steps of the motor).

During operation of the system 10, the pump heads 20 cooperate to drawsolvents from the reservoirs 14 through the GPV 16 in meteredproportions and to deliver a continuous flow to the mixer 18. Thereciprocating plungers of the pump heads 20 repeatedly execute a drawstroke during an intake cycle and a delivery stroke during a deliverycycle. In addition, the reciprocating plungers operate in complementaryfashion (i.e., 180 degrees out-of-phase): when one reciprocating plungerexecutes a draw stroke in order to pull fluid from the GPV 16, the otheris executing a delivery stroke in order to push fluid to the mixer 18.The mixer 18 delivers a continuous flow of mixed fluids to the point ofuse, for example, a chromatographic column.

FIG. 2 shows a simplified diagrammatic representation of an embodimentof a pump head 20 (representative of the pump heads 20 a, 20 b). Thepump head 20 includes a reciprocating piston or plunger 50 within thechamber 52 at a head end 54. A stepper motor 56 at a motor end 58 of thepump head 20 moves the plunger 50 within the chamber 52. Opening intothe chamber 52 is an inlet passage 60 and an outlet passage 62. Fluid ispulled into the chamber 52 through the inlet passage 60 during a drawstroke of the plunger 50, and pushed out of the chamber 52 through theoutlet passage 62 during a delivery stroke. In FIG. 2, the plunger 50appears in a position corresponding to the completion of a draw strokeor, conversely, at the start of a delivery stroke. Pulses from thesystem controller 34, which control the frequency and stroke length ofthe plunger 50, arrive at the stepper motor 56 by way of a electricalsignal conduit 64. In one embodiment, the length of a full stroke is 1.1mils.

FIG. 3 shows an embodiment of the system controller 34 of FIG. 1. Thesystem controller 34 includes memory 100 storing a trapezoidal intakevelocity profile 102 (described below) and an optimized intake velocityprofile 104 of the present invention. Trapezoidal, as used herein todescribe an intake velocity profile, is a metaphorical reference to thecyclical waveform shape for motor velocity during an intake cycle (FIG.8B). The trapezoidal velocity waveform includes a linearly increasingvelocity until the motor 56 attains a desired terminal velocity,followed by a constant velocity at the desired terminal velocity for apredetermined period, and then by a linearly decreasing velocity untilthe velocity reaches zero. The corresponding acceleration curve thatproduces this trapezoidal velocity waveform uses constant accelerationuntil the stepper motor reaches the desired velocity followed byconstant deceleration after the stepper motor operates at the desiredvelocity for a given period (during which period the acceleration rateis equal to zero). Optimized, as used herein to identify an intakevelocity profile, refers to the use of maximum acceleration based onavailable torque and a desired margin of operation over a range of motorvelocities (i.e., zero to a predefined desired terminal velocity).

The intake velocity profiles 102, 104 are statically determined. A userof the host 40 downloads and stores the intake velocity profiles intothe memory 100 of the system controller 34 before operating the pump 12.In general, the system controller 34 refers to an intake velocityprofile to determine how to execute a motor move during an intake cycle(i.e., a draw stroke of the plunger 50 of a pump head 20). In oneembodiment, the system controller 34 uses the trapezoidal intakevelocity profile 102 to control the motor move when the desired terminalvelocity is less than or equal to a threshold velocity and switches tothe optimal intake velocity profile 104 when the desired velocity isgreater than that threshold velocity. Although two intake velocityprofiles are described, the system 10 can have multiple optimized intakevelocity profiles to which the system controller 34 has access. Inaddition, the trapezoidal intake velocity profile 102 is optional; thesystem 10 does not require this profile 102 in order to practice theinvention (accordingly, the trapezoidal intake velocity profile 102 isshown in phantom).

In addition, the system controller 34 includes a clock 106, amicroprocessor 108, an input terminal 110 for receiving commands andinformation, for example, the intake velocity profiles, from the hostcomputer 40 (FIG. 1), and output terminals 112, 114 for sending pulsesto the motor driver 36 and, valve driver 38 respectively. The clock 106provides the timing requisite for the microprocessor 108 to controlproperly the desired operation of the motor 56 (FIG. 2) in synchronizedrelationship with the actuating of the valves of GPV 16. The outputproduced by the system controller 34 includes a pulse train 116representing the appropriate number and rate of motor steps for drivingthe stepper motor 56 at the desired velocity at a given point in timeduring an intake cycle in order to achieve the desired flow rate.

The available torque of the stepper motor limits motor acceleration andvaries according to the velocity at which the motor is currentlyoperating. FIG. 4 shows a chart 150 illustrating an example of atorque-speed curve 152. It is to be understood that the illustratedtorque-speed curve 152 is an example and that torque-speed curves arespecific to the particular stepper motor being used. The particularillustrated torque-speed curve 152 corresponds to that of the steppermotor used in Waters Corp.'s 2545 Quaternary Gradient Module, which isthe subject also of the other charts and plots described herein.

In the chart 150, torque is on the y-axis 154, expressed in torque unitsof in-ozf (inch-ounce force), and motor velocity is on the X-axis 156,expressed in units of microsteps (μsteps) per second. In general, themotor has greater torque at lower motor velocities, with the torquedecreasing as the motor velocity increases (0-40000 μsteps/sec), andapproximating a constant value (170 in-ozf) at higher motor velocities(40000-70000 μsteps/sec).

FIG. 5 shows a chart 180 that plots optimized maximum velocity over timebased on the available torque of the motor. Motor velocity is on they-axis, 182 and is expressed in μsteps per second. Time is on the x-axis184, expressed in seconds. The chart 180 includes 5 different plots186-1, 186-2, 186-3, 186-4, and 186-5 (generally, 186) representingdifferent plots of motor velocity versus time, each plot correspondingto a different constant torque margin built into the maximum velocity ofthe stepper motor. The examples of torque margin shown are 10%, 20%,30%, 40%, and 50%. The plots 186 illustrate a common pattern ofoperation across the various margins: the velocity rises substantiallylinearly to approximately 30000 usteps/sec (of the various plots, theplot 186-1 corresponding to the 10% margin rises most quickly, the one186-5 with the 50% margin, least quickly) and then asymptoticallyapproaches a maximum velocity of the motor (here, approximately 90000usteps/sec). In general, the greater the torque margin, the lower themotor velocity at any given point in time.

FIG. 6 shows a chart 200 that plots optimized maximum acceleration overtime based on the available torque of the motor. Acceleration is on they-axis 202, expressed in μsteps per second squared. Time is on thex-axis 204, expressed in seconds. The chart 200 includes 5 differentplots 206-1, 206-2, 206-3, 206-4 and 206-5 (generally, 206) representingdifferent plots of acceleration versus time, each plot corresponding toa different constant torque margin built into the maximum accelerationof the stepper motor. The examples of torque margin shown are 10%, 20%,30%, 40%, and 50%.

An example for an equation to determine the maximum availableacceleration for the motor at a given velocity is as follows:

α_(available)=[(100−margin)/100]*[T _(motor) −T _(c) −T _(v)(ω))/J_(sys)]

where T_(motor) is the pullout torque of the motor, T_(c) is torqueassociated with a constant load of the system, T_(v) is torqueassociated with velocity, and J_(sys) is the inertia of the system.

The plots 206 demonstrate a common pattern of operation across thevarious margins: initially the maximum possible acceleration (with agiven margin) is approximately constant for a period, and then decreasesnon-linearly towards zero. Of the set of plots, the plot 206-1corresponding to the 10% margin starts at the highest acceleration rateand decreases most quickly, and the plot 206-5 corresponding to the 50%margin starts with the lowest acceleration and decreases least quickly.

FIG. 7 shows a chart 220 that plots acceleration versus motor velocitybased on the available torque of the stepper motor. The chart 200presents the same data used to construct the charts shown in FIG. 5 andFIG. 6. Acceleration is on the y-axis 222, expressed in μsteps persecond squared, and velocity is on the x-axis 224, expressed in μstepsper second. The chart 220 includes 5 different plots 226-1, 226-2,226-3, 226-4, and 226-5 (generally, 226) representing different curvesof maximum acceleration versus motor velocity. Each plot 226 correspondsto a different constant torque margin built into the acceleration of thestepper motor (10%, 20%, 30%, 40% and 50%). As shown, for each constanttorque margin, the maximum acceleration rate at which the motor can beoperated is greater at the low end of the range of motor velocities. Inaddition, for a given margin the maximum acceleration decreases asvelocity increases, and for a given velocity, the maximum accelerationincreases as the margin decreases. An optimized intake velocity profilecan be generated from any one of the curves XX; each acceleration curveenables the stepper motor to be driven at a maximum acceleration over arange of velocities for a given constant torque margin. Other optimizedintake curves can be produced (e.g., using different margins than thoseillustrated).

The chart 220 also illustrates a preferred optimized acceleration curve230 and a constant acceleration curve 232. The preferred optimizedacceleration curve 230 represents an optimized intake velocity profilefor accelerating the motor to a desired terminal velocity of 40000usteps per second. The acceleration curve 230 includes a linear portion234 and an arcuate portion 236 designed to follow generally the shape ofthe other optimized curves 226. As implied by its position on the chart,operating the stepper motor in accordance with this preferredacceleration curve 230 ensures a margin of at least 50% throughout theintake cycle (the same profile used to accelerate the motor to thedesired terminal velocity can be used to decelerate the motor to zerovelocity). Deceleration can be faster than the acceleration becausefriction helps the motor slow down, thereby adding to the availabletorque.

The linear and arcuate portions 234, 236 of the preferred optimizedacceleration curve 230 simplify the generation of table values forrepresenting and storing the acceleration curve 230 in tabular form (asan optimized intake velocity profile stored in memory 100). Simplemathematical equations can represent each portion 234, 236 and be usedto generate points along the preferred optimized acceleration curve 230.This process is less computationally intensive than extracting specificacceleration values from specific points on a less geometricallystructured curve (such as the other curves 226), computing table valuesfor each of these extracted values, and populating entries in a tablewith the computed values (e.g., using a text editor to populate thetable directly or software for filling in the table with hardcodedvalues).

The constant acceleration curve 232 represents the stage of thetrapezoidal intake velocity profile during which the velocity constantlyincreases towards the desired terminal velocity. The constantacceleration curve 232 crosses a range of velocities from 0 to 70000usteps/sec². As is evident by the area 238 between the preferredoptimized acceleration curve 230 and the constant acceleration curve232, operating the stepper motor in accordance with the constantacceleration curve 232 does not utilize the motor at its fullest torquecapabilities. For much of its velocity range, the constant accelerationcurve provides more than a 50% margin until the curve approaches thehigh end of the range (approximately 70000 usteps per sec), at whichpoint the constant acceleration curve 232 no longer maintains the 50%margin (i.e., where it crosses the optimized acceleration curve 226-5based on the 50% margin and closely approaches the 40% marginacceleration curve 226-4).

FIG. 8A, FIG. 8B, and FIG. 8C show three charts 250, 252, and 254,respectively. Chart 250 is of acceleration (x-axis) over time (x-axis);chart 252 is of velocity (y-axis) over time (x-axis); and chart 254 isof motor position in units of steps (y-axis) over time (x-axis). Eachchart provides a comparison between motor operation in accordance withthe trapezoidal intake velocity profile 104 representing the constantacceleration curve 232 (plots are in dashed lines) and the optimizedintake velocity profile 230 representing the preferred optimizedacceleration curve 232 (plots are in solid lines). The plots of thecharts 250, 252, and 254 are aligned over time. Again, these plots arebased on the stepper motor used in Waters Corp.'s 2545 QuaternaryGradient Module. The intake cycle takes approximately 0.30 seconds; theintake cycle is only 3% longer for the optimized intake velocity profilethan for the trapezoidal intake velocity profile, despite the terminalvelocity of the optimized intake velocity profile being 43% less thanthat of the trapezoidal intake velocity profile.

As shown in the acceleration chart 250, the stepper motor, whenoperating according to the trapezoidal intake velocity profile during anintake cycle, undergoes constant acceleration (approximately 40000usteps per second squared) until the motor velocity (see chart 252)reaches a desired velocity (70000 usteps per second). When the motor isoperating at the desired velocity, the system controller drops theacceleration immediately to zero, and maintains the acceleration at zerofor a predetermined period. Then, the system controller decelerates thestepper motor at a constant rate until the motor velocity reaches zero.

The acceleration chart 250 also shows that when operating according tothe preferred optimized intake velocity profile 104 during an intakecycle, the stepper motor initially operates at a constant accelerationfor a defined period, and then linearly decreases over time until themotor reaches a desired motor velocity. The desired motor velocity issignificantly lower (here, 40000 usteps/sec vs. 70000 usteps/sec) thanthe desired motor velocity produced by the trapezoidal intake velocityprofile. Because error is proportional to velocity for low-pressuregradient systems, being able to operate at a low velocity (relative to70000 usteps/sec) is particularly beneficial for reducing such error.The linear decrease in acceleration corresponds to the arcuate portion234 of the acceleration curve shown in FIG. 7 and accuratelyapproximates the 50% margin curve 226-5 of FIG. 7 with reasonablecomputational complexity. Other functions can be used to approximate themargin curve without departing from the principles of the invention.

The velocity graph 252 shows the trapezoidal velocity curve produced bythe constant acceleration curve 256 described in the acceleration chart250. Velocity increases linearly until the motor attains the desireterminal velocity, remains constant at the terminal velocity for aspecific period, and then decreases linearly to zero. Because of thefixed duration of the intake cycle, the motor does not operate long atthe terminal velocity before having to begin deceleration. Thus, formost of the intake cycle the motor is operating at a changing speed.

In addition, the velocity graph 252 shows the velocity curve 260produced by following the optimized acceleration curve 258 described inthe acceleration graph 250. Within 40 ms, the velocity increases to thedesired terminal velocity. After remaining constant at that terminalvelocity for a specified period, the motor decelerates to zero velocity.As is evident from the velocity graph, when operating according to theoptimized intake velocity profile 104, the motor operates at the desiredterminal velocity for a greater portion of the intake cycle than whenoperating according to the trapezoidal intake velocity profile.Accordingly, the motor takes more steps when operating at a constantvelocity (zero acceleration) using the optimized intake velocity profilethan when using the trapezoidal intake velocity profile. Advantageously,operating the system with less acceleration poses fewer problemsassociated with the proper metering of fluids at the GPV.

The position chart 254 shows two curves 264, 266 corresponding to themotor step position when operating according to the trapezoidal intakevelocity profile 102 and when according to the optimized intake velocityprofile 104, respectively. The motor has approximately 11 thousandsteps. As shown, the curve 266 for the optimized intake velocity profileis more linear than the curve 264 for the trapezoidal intake velocityprofile across these 11 thousand steps. Thus, the intervals for causingstepwise movement of the motor occur more regularly under the optimizedintake velocity profile than for the trapezoidal intake velocityprofile. Correspondingly, the opening and closing of valves in the GPVcan be more consistently regulated to synchronize such events with thestepping of the motor.

As described above in connection with FIG. 2, the processor 108 of thesystem controller 34 accesses the memory 100 to acquire the optimizedintake velocity profile representing the optimized acceleration curveand to issues pulses to the motor in accordance with that optimizedintake velocity profile. Representing this optimized intake velocityprofile in memory can be implemented in a variety of ways.

One embodiment uses an acceleration table to store non-dimensional datavalues that represent the optimized intake velocity profile (and, thus,the optimized acceleration curve to be followed by the motor). Eachtable entry corresponds to a step on the optimized acceleration curve.The first entry corresponds to the first step, the second entrycorresponds to the second step, and so on. Each step in effectrepresents the elapsed time to the next motor pulse. The microprocessor108 uses a pointer to maintain its current entry position in the table.After issuing a pulse based on the current table entry, themicroprocessor 108 acquires the data value from the next entry andconverts that value into the time (i.e., number of clock cycles) todelay issuing the next pulse.

FIG. 9 shows an embodiment of a process 300 for operating a steppermotor of a low-pressure gradient system. At step 302, the availabletorque of the stepper motor is calculated at a plurality of motorvelocities at which the stepper motor can operate during an intakecycle. Margin is built into the calculation of available torque (step304). A maximum acceleration rate is calculated (step 306) for eachmotor velocity of the plurality of motor velocities at which the steppermotor can operate during the intake cycle based on the available torqueof the stepper motor at that motor velocity. An optimized intakevelocity profile is generated (step 308) based on the calculated maximumacceleration rates. The optimized intake velocity profile is stored(step 310) in memory of the system controller, for example, in tabularformat. The stepper motor is accelerated (step 312) during the intakecycle in accordance with the intake velocity profile.

In one embodiment, shown in phantom, the system controller determines(step 314) whether the desired terminal velocity exceeds a thresholdvelocity. If the desired terminal velocity is greater than thethreshold, the system controller uses (step 312) the optimized intakevelocity profile, otherwise the system controller uses (step 316) thetrapezoidal intake velocity profile.

Program code (or software) of the present invention may be embodied ascomputer-executable instructions on or in one or more articles ofmanufacture, or in or on computer-readable medium. A computer, computingsystem, or computer system, as used herein, is any programmable machineor device that inputs instructions and data, processes, and outputs,commands, or data. In general, any standard or proprietary, programmingor interpretive language can be used to produce the computer-executableinstructions. Examples of such languages include C, C++, Pascal, JAVA,BASIC, Visual Basic, and Visual C++.

Examples of articles of manufacture and computer-readable medium inwhich the computer-executable instructions may be embodied include, butare not limited to, a floppy disk, a hard-disk drive, a CD-ROM, aDVD-ROM, a flash memory card, a USB flash drive, an non-volatile RAM(NVRAM or NOVRAM), a FLASH PROM, an EEPROM, an EPROM, a PROM, a RAM, aROM, a magnetic tape, or any combination thereof. Thecomputer-executable instructions may be stored as, e.g., source code,object code, interpretive code, executable code, or combinationsthereof. Further, although described predominantly as software,embodiments of the described invention may be implemented in hardware(digital or analog), software, or a combination thereof.

While the invention has been shown and described with reference tospecific preferred embodiments, it should be understood by those skilledin the art that various changes in form and detail may be made thereinwithout departing from the spirit and scope of the invention as definedby the following claims. For instance, although described herein withrespect to low-pressure gradient pumps, the principles of the inventionapply also to high-pressure mixing pumps (e.g., Waters Corp.'s 2525AutoPurification pumps and Waters Corp.'s 2545 high-pressure mixingpumps).

What is claimed is:
 1. An method for operating a stepper motor of apumping system during a fluid intake cycle, comprising: measuringavailable torque of the stepper motor across a range of motor velocitieswithin which the stepper motor will operate during the intake cycle;calculating a maximum acceleration rate for each of a plurality of motorvelocities in the range of motor velocities based on the availabletorque of the stepper motor measured at that motor velocity; generatingan intake velocity profile based on the maximum acceleration ratescalculated for the plurality of motor velocities; and accelerating thestepper motor during the intake cycle in accordance with the generatedintake velocity profile.
 2. The method of claim 1, wherein the maximumacceleration rate determined for each motor velocity of the plurality ofmotor velocities includes an operating margin.
 3. The method of claim 1,wherein the available torque of the stepper motor at each motor velocityof the plurality of motor velocities is a function of pullout torque ofthe stepper motor, load on the stepper motor, torque loss at that motorvelocity, and motor inertia.
 4. The method of claim 1, whereinaccelerating the stepper motor during the intake cycle in accordancewith the generated intake velocity profile includes: initiallyaccelerating the stepper motor at a constant acceleration rate until thestepper motor reaches a first motor velocity; and after the steppermotor reaches the first motor velocity, accelerating the stepper motorat a decreasing acceleration rate to bring the stepper motor to adesired terminal velocity.
 5. The method of claim 4, further comprisingdecelerating the stepper motor, after the stepper motor operates at thedesired terminal velocity for a given duration, at an increasingdeceleration rate until the motor velocity of the stepper motor reacheszero.
 6. The method of claim 1, further comprising: storing in memory atable of values representing the intake velocity profile; andtranslating the table of values into a series of pulses that controlsthe acceleration of the stepper motor over time in accordance with theintake velocity profile.
 7. The method of claim 1, wherein the intakevelocity profile is a first intake velocity profile and furthercomprising: operating the stepper motor in accordance with a secondintake velocity profile that causes the stepper motor to run at aconstant acceleration rate until the stepper motor reaches a desiredterminal velocity, followed by constant deceleration rate after thestepper motor operates at the desired terminal velocity for a givenperiod; determining whether the desired terminal velocity exceeds athreshold velocity; and switching control of the stepper motor from thesecond intake velocity profile to the first intake velocity profile whenthe desired terminal velocity exceeds the threshold velocity.
 8. Amethod for operating a pump in a pumping system, the pump having astepper motor coupled to a reciprocating plunger mechanism, the steppermotor moving the plunger mechanism within a chamber into which fluid isdrawn during a draw stroke of the plunger mechanism, the methodcomprising: storing information, in memory, corresponding to an intakevelocity profile that represents an optimized acceleration curve basedon available torque for operating the stepper motor over a range ofmotor velocities at which the stepper motor will operate during anintake cycle; dynamically accessing the memory during the intake cycleto acquire the information that corresponds to the intake velocityprofile; and issuing a series of pulses to the pump based on theinformation accessed in the memory; accelerating the stepper motor, inresponse to the series of pulses, such that the stepper motoraccelerates during the intake cycle in accordance with the optimizedacceleration curve represented by the intake velocity profile.
 9. Themethod of claim 8, wherein the optimized acceleration curve includes anoperating margin.
 10. The method of claim 8, wherein accelerating thestepper motor includes: initially accelerating the stepper motor at aconstant acceleration rate until the stepper motor reaches a firstvelocity; and after the stepper motor reaches the first velocity,accelerating the stepper motor at a decreasing acceleration rate tobring the stepper motor to a desired terminal velocity.
 11. The methodof claim 10, further comprising decelerating the stepper motor after thestepper motor operates at the desired terminal velocity for a givenperiod, wherein the decelerating occurs at an increasing decelerationrate until the velocity of the stepper motor reaches zero.
 12. Themethod of claim 8, further comprising dynamically determining from theinformation that corresponds to the intake velocity profile when toissue each pulse in the series of pulses.
 13. The method of claim 8,wherein the intake velocity profile is a first intake velocity profileand further comprising: storing information corresponding to a secondintake velocity profile that represents a constant acceleration curve inaccordance with which, during an intake cycle, the stepper motorundergoes constant acceleration until the stepper motor reaches adesired terminal velocity followed by constant deceleration after thestepper motor operates at the desired terminal velocity for a givenperiod; operating the stepper motor in accordance with the second intakevelocity profile when the desired terminal velocity is less than athreshold velocity; and switching to operating the stepper motor inaccordance with the first intake velocity profile when the desiredterminal velocity exceeds the threshold velocity.
 14. A pumping system,comprising: a pump having a stepper motor coupled to a reciprocatingplunger mechanism, the stepper motor moving the plunger mechanism withina chamber into which fluid is drawn during a draw stroke of the plungermechanism; memory storing information corresponding to an intakevelocity profile, the intake velocity profile representing an optimizedacceleration curve based on available torque of the stepper motor acrossa range of motor velocities at which the stepper motor will operateduring an intake cycle; a system controller having a processor that isin communication with the stepper motor to issue pulses thereto and withthe memory to access dynamically during the intake cycle the informationrepresenting the intake velocity profile and to determine from theaccessed information when to issue pulses to the pump, the issued pulsescausing the stepper motor to accelerate in accordance with the optimizedacceleration curve represented by the intake velocity profile.
 15. Thesystem of claim 14, wherein the optimized acceleration curve includes anoperating margin.
 16. The system of claim 15, wherein the availabletorque of the stepper motor is a function of pullout torque of thestepper motor, load on the stepper motor, torque loss, and motorinertia.
 17. The system of claim 14, wherein during the intake cycle thesystem controller initially accelerates the stepper motor at a constantacceleration rate until the stepper motor reaches a first velocity, and,after the stepper motor reaches the first velocity, accelerates thestepper motor at a decreasing acceleration rate to bring the steppermotor to a desired terminal velocity.
 18. The system of claim 17,wherein during the intake cycle the system controller decelerates thestepper motor, after the stepper motor operates at the desired terminalvelocity for a given period, at an increasing deceleration rate untilthe motor velocity of the stepper motor reaches zero.
 19. The system ofclaim 14, wherein the intake velocity profile is a first intake velocityprofile and the memory stores information corresponding to a secondintake velocity profile, the second intake velocity profile representingan acceleration curve in accordance with, during an intake cycle, thestepper motor undergoes constant acceleration until the stepper motorreaches a desired terminal velocity followed by constant decelerationafter the stepper motor operates at the desired terminal velocity for agiven period; and wherein the system controller operates the steppermotor in accordance with the second intake velocity profile when thedesired terminal velocity is less than a threshold velocity and switchesto operating the stepper motor in accordance with the first intakevelocity profile when the desired terminal velocity exceeds thethreshold velocity.